﻿#ifndef QUEEN_CACULATE_H
#define QUEEN_CACULATE_H
#pragma execution_character_set("utf-8")
#include <iostream>
#include <vector>
using namespace std;

class queen_caculate
{
public:
    queen_caculate(int cout);
    ~queen_caculate();
    char change(long d);
    long bit_operate_add(long number,int position);  //在指定位置添加1
    long bit_operate_left(long number,int position);   //指定位置添加1并左移1位
    long bit_operate_right(long number,int position);  //指定位置添加1并右移1位
    void output(char data[]);
    void init(vector<short> data);                  //对数据进行初始化，由于算法导致结果与原结果是对称，因此对初始数据进行对称换算
    char *QueenAry;
    void put_Queen(long row, long ld, long rd, char QueenAry[], short len);
    int  problem_number=0;
   unsigned long long sum = 0;
    long upperlim = 1;
    void start();
};

#endif // QUEEN_CACULATE_H
